Field of the Invention
The present invention relates to, for example, rendering processing executed by an information processing apparatus such as a mobile terminal that operates as an external device for an image output apparatus, for example, a printer.
Description of the Related Art
In recent years, multi-function mobile terminals (to be referred to as mobile computers hereinafter) incorporating a camera function have explosively become widespread, and far surpass digital cameras and conventional personal computers (to be referred to as PCs hereinafter) in sales.
Such mobile computer is basically formed from three elements, that is, hardware as the computer itself, an operating system (to be referred to as an OS hereinafter) operating on the hardware, and an application operating on the OS. By using the application, the user can use a function such as a map, mail, or browsing of a Web site on the Internet.
As examples of the form of such application operating on the mobile computer, there are mainly two application forms, that is, a native application and Web application. The features of each application form will be explained below.
The native application is developed by using a development environment and development language which are prepared for each OS. For example, the C/C++ language is used on an OS provided by company A, the Java® language is used on an OS provided by company B, and a different development language is used on an OS provided by company C. In general, the native application is compiled in advance in each development environment, and converted from a so-called high-level language understandable by a human into instruction sets such as an assembler interpretable by the CPU of the computer. Thus, the ordinary native application has an advantage that it is possible to perform an operation at high speed since the CPU directly interprets instructions.
On the other hand, the Web application indicates an application operating on a Web browser which is normally incorporated in an OS on each computer in recent years. The application is generally developed by using a language such as HTML5, CSS, or JavaScript® so that the Web browser can interpret the application. These languages are Web standard languages. Therefore, if a Web application is described using the Web standard language, it can operate in any environment where the Web browser operates.
The above-described recent mobile computer integrates a high-resolution camera. The mobile computer is carried by the user daily and also includes a memory capable of storing thousands of photos. Hence, the user can easily enjoy photo taking at a very high frequency. Image processing to, for example, apply filtering for adding monochrome/sepia-toning to a photo image obtained in this way or correct undesirable conditions such as excessive darkness or loss of color balance in a photo is a very important and indispensable function for the user. When developing an application that allows the user to easily execute such image processing without any stress in the two forms described above, the following problems arise.
A native application can execute processing at a high speed, as described above. However, since the native application needs to be developed individually in a development language that changes between OSs, not only the development cost and development time increase, but also the native application cannot readily be provided to users. In addition, the native application needs to be compiled in advance. For this reason, it is difficult to change the UI design of the application at the time of operation or dynamically enhance functions.
Japanese Patent Laid-Open No. 2011-233034 discloses an example of a web application form. In a web application, normally, the main body of the application described in HTML5, CSS or JavaScript® exists on a server outside the mobile computer. Since the application is dynamically downloaded from the server to the mobile computer via the Internet for utilization, the UI design and the like can dynamically be updated without being compiled in advance. However, when executing advanced complex processing, there are only two options for the web application. That is, the web application is executed on the browser by JavaScript® because of restrictions of the browser in terms of security, or executed on the server. JavaScript® is conventionally described as a script of a character string visually recognizable by a human, and can be executed by compiling the script as needed at the time of operation. For this reason, if complex processing is described using JavaScript®, the operation is slow.
If the web application is built so as to execute the processing on the server, time is needed to upload data of a photo or the like existing in the mobile computer to the server via the Internet and download the processing result. This is a large problem for the user who wishes the mobile application to perform stress-free instantaneous processing. In addition, processing on the server cannot be executed offline.
When executing image enlargement processing in image processing, it is necessary to hold pixel values before enlargement and those after enlargement on a memory. Hence, the larger the number of pixels is, the larger the memory utilization is. However, if an application as described above is executed by, for example, a mobile computer, it is difficult to integrate a large-capacity RAM as a memory. In addition, since a web application as described above holds image data not as binary data but as character string data, a large-capacity memory is needed as compared to a case where image data of the same amount is held as binary data. For this reason, a memory of larger capacity is necessary for image enlargement processing, and a short memory readily occurs in the computer.